package com.lagou.util;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;

import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

/**
 * @author Fxz
 * @version 1.0
 * @date 2021-10-04 21:51
 */
public class JwtUtil {


    /**
     * 有效期 一个月
     */
    public static final Long JWT_TTL = 1000L * 60 * 60 * 24 * 30;

    /**
     * 密钥明文
     */
    public static final String JWT_KEY = "Fxzzzz";

    /**
     * 解析token
     *
     * @param token
     * @return
     */
    public static Claims parseJWT(String token) throws Exception {
        SecretKey secretKey = generalKey();
        return Jwts.parser().setSigningKey(secretKey).parseClaimsJws(token).getBody();
    }

    /**
     * 生成密钥的密文
     *
     * @return
     */
    public static SecretKey generalKey() {
        byte[] encode = Base64.getEncoder().encode(JwtUtil.JWT_KEY.getBytes(StandardCharsets.UTF_8));
        return new SecretKeySpec(encode, 0, encode.length, "AES");
    }


}
